An embedded system is a special-purpose system in which the computer is encapsulated by the device it controls. Devices that utilize embedded systems may include, for example, information appliances, smart phones, set-top boxes, personal digital assistants (PDAs), etc.
Embedded systems often utilize the Linux operating system because it is available as open source software. Linux was initially designed for use with personal computer systems that have a large amount of storage space available. Embedded systems, in contrast, have a limited amount of storage space. In addition, an embedded system, unlike a general-purpose computer such as a personal computer, usually performs a single predefined function having very specific requirements. Hence, in view of space constraints and cost savings, an embedded system should provide only the storage space that is required for the specified function.
When developing an embedded system, a designer typically uses a development environment on a host PC. In particular, the designer selects a set of software packages for the embedded system and copies these software packages to the host PC. The software packages may be in the Red Hat® Package Manager (RPM) format, which is a native packaging format of the Linux operating system. Each software package has its own function and operation. The designer must have a significant depth of knowledge of the software and hardware to decide which software packages need to be selected for the embedded system.
Once the selection of the software packages is completed, the designer integrates the selected software packages into a root file system, which is then compressed to an image file and loaded to a target device. The loaded image file is used to test the operation of the root file system. If the root file system operates abnormally, the designer has to spend a significant amount of time on debugging. After debugging, the designer returns to the development process.
As can be seen from the above description, the prior art method for developing embedded systems is complicated and time consuming.